Arch Linux 安装
Arch Linux的配置和使用
好像是上研究生,开始学习Python就转投了Arch邪教,也是因为它比较简单把,感觉pacman还是要比apt更适合我这种小白一点,也是从一开是的WSL 1.0 一直用到现在,偶尔也会给笔记本装成Arch,这里就简单记录一些Arch的配置和使用习惯。
安装
本次安装记录,主要从一开始的iso安装,到后续惯用软件的安装等。参考了一些安装教程,由于是自己使用记录,不做过多的命令解释,把一些可以连续执行的命令放在一起,方便Copy&Paste (尤其是打开iso的sshd,直接在另一台电脑上Copy&Paste,别提有多快乐了)。
基础安装
这一节主要覆盖在archiso中安装tui系统,引导生成等:
- 禁用自动更新mirrorlist(一点都不智能)
systemctl stop reflector.service
- 连接网络
iwctl
station wlan0 connecct wifi-name
exit
- 更新时钟
timedatectl set-ntp true
timedatectl status
-
更新
/etc/pacman.d/mirrorlist -
更新硬盘分区
lsblk # 确认系统盘
cfdisk /dev/nvme0n1
# 通过TUI划分分区的时候,boot分区的类型选择为efi(最好将eif分区搞大点,生成的initrams还是挺大的,600M仅能安装2给内核)
# swap分区,更偏好通过zram来配置
fdisk -l
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mount /dev/nvme0n1p2 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
- 安装系统
# 尽管安装指南上说不建议现在自定义内核,但是尝试后这里直接安装zen内核似乎也没影响
# 这里选择了安装headers,为了方便后面安装dkms内核和nvidia显卡驱动安装
pacstrap /mnt base base-devel linux-zen linux-zen-headers linux-firmware
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
- 切换到安装的系统
arch-chroot /mnt
- 设置新系统
vim /etc/hostname
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch.localdomain myarch
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
vim /etc/locale.gen
# 取消en_US.UTF-8和zh_CN.UTF-8
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
passwd root
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD
- 安装引导
pacman -S grub efibootmgr os-prober
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
vim /etc/default/grub
# 可选,在GRUB_CMDLINE_LINUX_DEFAULT中去掉quiet,加入nowatchdog和loglevel=5
grub-mkconfig -o /boot/grub/grub.cfg
- 后续
至此ISO安装的部分已经完成,下面将重启到安装系统。
umount -R /mnt
reboot
桌面环境的安装
这一节主要覆盖GUI环境安装,这里选择了默认的KDE+PLASMA 6,以及WAYLAND协议(不得不说,NVIDIA虽然在进步,但是想正常使用WAYLAND还是有点困难的,也催生了这篇记录)
- 连接网络
# 有线DHCP的话,已经能自动获取IP联网了
systemctl enable --now NetworkManager
# 要是用无线WIFI的话,更推荐使用nmtui进行交互式连接WIFI
nmtui
- 添加用户
useradd -m -G wheel -s /bin/bash myusername
passwd myusername
# 给予sudo权限
EDITOR=vim visudo
# 去掉 #%wheel ALL=(ALL:ALL) ALL 行前的注释
- 安装源配置
vim /etc/pacman.conf
# 去掉[multilib]一节的注释,最好也去掉Color那一行注释,开始不同颜色,方便观察
# 添加ArchlinuxCN
# pacman.conf
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch
Server = https://repo.huaweicloud.com/archlinuxcn/$arch
pacman -S archlinuxcn-keyring
# pacman -S plasma
- 安装KDE Plasma
pacman -S plasma-meta konsole dolphin
# Wayland还需要以下
pacman -S plasma-workspace xdg-desktop-portal egl-wayland xdg-desktop-portal xdg-desktop-portal-kde
# 直接启动显示管理器
systemctl enable --now sddm
- 初步软件安装
# 具体每个软件的功能作用,请参考安装教程
sudo pacman -Sy --needed sof-firmware alsa-firmware alsa-ucm-conf ntfs-3g adobe-source-han-serif-cn-fonts wqy-zenhei noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra ark packagekit-qt6 packagekit appstream-qt appstream gwenview
# 常用的工具
sudo pacman -Sy --needed tree ncdu fastfetch bat neovim
- 安装Rime-ice输入法
sudo pacman -S --needed fcitx5-im fcitx5-chinese-addons
sudo pacman -Sy fcitx5-rime archlinuxcn/rime-ice-git
mkdir ~/.config/environment.d/
echo 'XMODIFIERS=@im=fcitx' > ~/.config/environment.d/im.conf
- 启用蓝牙
sudo systemctl enable --now bluetooth
软件配置
下面主要介绍一些常用软件的配置。
- 显卡驱动
# 虽然想把所有图形放dGPU上,但是似乎还是需要安装iGPU驱动
sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel
# 选择dkms的驱动,便于修改Linux内核
sudo pacman -S nvidia-dkms nvidia-settings lib32-nvidia-utils
# 应该还要安装prime
sudo pacman -S nvidia-prime
# 下面应该是主要内容了
sudo vim /etc/environment
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME="nvidia"
QT_QPA_PLATFORM="wayland;xcb"
# 这个应该是核心,且注意/dev/dri下的card号,可能会变动。[[BUG] Nvidia mode not fully working in Wayland](https://github.com/bayasdev/envycontrol/issues/178#issuecomment-2297637467)
KWIN_DRM_DEVICES=/dev/dri/card1:/dev/dri/card2
__VK_LAYER_NV_optimus="NVIDIA_only"
__NV_PRIME_RENDER_OFFLOAD=1
LIBVA_DRIVER_NAME=nvidia
#MESA_LOADER_DRIVER_OVERRIDE=nvidia
# for firefox hard acceleration
MOZ_DISABLE_RDD_SANDBOX=1
- 通过bare git恢复备份的git文件
git clone --bare git@github.com:valleyUp/dotfiles.git $HOME/.gavin
alias gavin="git --git-dir=$HOME/.gavin --work-tree=$HOME"
# 应该会有2个文件冲突,懒得merge,直接删除原始文件即可
gavin checkout
- 配置ZSH
# 安装zsh
sudo pacman -Sy --needed zsh
# 安装一些pesudo依赖
sudo pacman -Sy autojump
paru -Sy env-modules miniforge
# not activate conda env
# conda create -n dev -c conda-forge python=3
# 安装Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 恢复zsh的插件
bash ~/.local/bin/zsh_configuration.sh
mv .zshrc.pre-oh-my-zsh .zshrc
- 常用软件的安装
sudo pacman -Sy --needed openssh ncdu less tree neovim rsync fastfetch bat kate bind curl wget dog htop nvtop strace the_silver_searcher jq pigz tmux fzf git-delta
sudo pacman -Sy --needed gtk4 tk
sudo pacman -Sy --needed git-lfs
sudo pacman -Sy --needed base-devel cmake ninja rust clang llvm gcc-fortran
sudo pacman -Sy --needed gcc13 gcc13-fortran gcc13-libs qemu-full
sudo pacman -Sy --needed nodejs npm yarn
sudo pacman -Sy --needed plantuml-ascii-math plantuml gnuplot graphviz pandoc imagemagick
sudo pacman -Sy --needed docker docker-buildx dive docker-compose
paru -Sy lazydocker
sudo pacman -Sy --needed ntfs-3g
sudo pacman -Sy --needed adobe-source-han-serif-cn-fonts wqy-zenhei
sudo pacman -Sy --needed noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
sudo pacman -Sy --needed texlive perl-tk biber
sudo pacman -Sy --needed unzip zip ark p7zip unrar unarchiver lzop lrzip